package com.pro.mapper;

import com.pro.pojo.Product;
import com.pro.pojo.ProductCategroy;
import com.pro.pojo.SyCourseRecord;
import com.pro.pojo.SyUserOrder;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ProductMapper {
    //判断权限
    List<Integer> judgePower(Integer id);
    //获取ztree商品树
    List<ProductCategroy> getProductTree();
    //添加树节点
    boolean addProductCategroy(ProductCategroy productCategroy);
    //删除树节点
    boolean deleteProductCategroy(Integer categroyId);
    //修改树节点
    boolean updateProductCategroy(@Param("title") String title, @Param("categroyId") Integer categroyId);
    //点击树节点获取信息
    List<Product> getCheckedProduct(Integer categroyId);
    //修改商品状态
    public boolean updateProductState(@Param("productSate") Integer productSate,@Param("productCode")Integer productCode);

    //根据商品编号删除商品
    boolean deleteByProductCodeProduct(Integer productCode);

    //搜索
    public List<Product> getProductSearch(@Param("productName")String productName,@Param("title")String title,@Param("productSate")Integer productSate,@Param("productLabel")String productLabel);

    //高级检索
    public List<Product> getProductRetrieval(Product product);

    //根据商品编号修改商品
    boolean updateByProductCodeProduct(Product param);

    //查询所有商品数量
    Integer getProductCounts();

    //模糊查询审核表 类型为商品的数据
    List<Product> getAuditTableAll(Product product);

    //根据不同的审核状态查询商品
    List<Product> getRecordResultProducts(Product product);

    //添加商品
    boolean addProduct(Product param);

    //添加商品审核表
    boolean addCourseRecord(SyCourseRecord syCourseRecord);

    //根据创建人查询个人商品 销量 还要一个模糊查
    List<Product> getPersonalProducts(Integer createId);

    //个人商品的模糊查
    public List<Product> getPersonalProductsSearch(@Param("productName")String productName,@Param("searchKeywords")String searchKeywords,@Param("currentpriceProduct")String currentpriceProduct);

    //查询所有商品货号
    List<Product> getProductCode();

    //根据商品编号查询主键商品id
    Product getproductId(Integer productCode);

    //删除商品审核记录
    public boolean deleteProductRecord(String courseId);

    //根据订单id查询商品信息
    Product getProductByOrderId(Integer orderId);

    //计算商品销量
    Product getProductBySalesVolume(Integer shopId);
    //根据商品编号查询商品收藏量
    Integer getUserCollection(Integer productCode);
    //根据商品编号查询商品收藏量
    Integer getUserOrder(Integer productCode);

    //高级检索 根据商品编号、商品名字、商品现价、商品分类查询商品
    List<Product> getProductsByNumNamePriceCatgory(Product product);

    //商品个人审核详情
    public List<SyCourseRecord> getProductCourseRecord(SyCourseRecord syCourseRecord);
    //李佳豪
    //获取上架的商品总量
    int getAllProductUpperCount();
}
